package com.supersonic.backend.model;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
@Table(name="deliver")
public class Deliver extends User {

	@OneToOne(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
	private Logistics logistics;

	@OneToOne(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
	private Net net;

	@OneToOne(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
	private PriceTable priceTable;

	@OneToOne(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
	private Title title;

	@OneToOne(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
	private SMSSet smsSet;

	private int smsUsage;
	
	private String inchargeArea;

	private double accountBalance;

	/**
	 * @return the logistics
	 */
	public Logistics getLogistics() {
		return logistics;
	}

	/**
	 * @param logistics the logistics to set
	 */
	public void setLogistics(Logistics logistics) {
		this.logistics = logistics;
	}

	/**
	 * @return the net
	 */
	public Net getNet() {
		return net;
	}

	/**
	 * @param net the net to set
	 */
	public void setNet(Net net) {
		this.net = net;
	}

	/**
	 * @return the priceTable
	 */
	public PriceTable getPriceTable() {
		return priceTable;
	}

	/**
	 * @param priceTable the priceTable to set
	 */
	public void setPriceTable(PriceTable priceTable) {
		this.priceTable = priceTable;
	}

	/**
	 * @return the title
	 */
	public Title getTitle() {
		return title;
	}

	/**
	 * @param title the title to set
	 */
	public void setTitle(Title title) {
		this.title = title;
	}

	/**
	 * @return the smsSet
	 */
	public SMSSet getSmsSet() {
		return smsSet;
	}

	/**
	 * @param smsSet the smsSet to set
	 */
	public void setSmsSet(SMSSet smsSet) {
		this.smsSet = smsSet;
	}

	/**
	 * @return the smsUsage
	 */
	public int getSmsUsage() {
		return smsUsage;
	}

	/**
	 * @param smsUsage the smsUsage to set
	 */
	public void setSmsUsage(int smsUsage) {
		this.smsUsage = smsUsage;
	}

	/**
	 * @return the range
	 */
	public String getInchargeArea() {
		return inchargeArea;
	}

	/**
	 * @param range the range to set
	 */
	public void setInchargeArea(String area) {
		this.inchargeArea = area;
	}

	/**
	 * @return the accountBalance
	 */
	public double getAccountBalance() {
		return accountBalance;
	}

	/**
	 * @param accountBalance the accountBalance to set
	 */
	public void setAccountBalance(double accountBalance) {
		this.accountBalance = accountBalance;
	}

}
